package com.itheima.lambda.test1;

/*
.编写一个接口（ShowHandler）

2. 在该接口中存在一个抽象方法（show），该方法是无参数无返回值
3. 在测试类（ShowHandlerDemo）中存在一个方法（useShowHandler）
    方法的的参数是ShowHandler类型的
    在方法内部调用了ShowHandler的show方法

 */
public class Test {

    //main方法 中调用 useShowHandler
    public static void main(String[] args) {
        //匿名内部类

        useShowHandler(new ShowHandler() {
            @Override
            public void show() {
                System.out.println("匿名内部类写法");
            }
        });
        //当代码体 有且只有一行的时候 {} 可以省略 如果有返回值 return ;可以省略 ,
        useShowHandler(() -> System.out.println("匿名内部类写法"));

        //lambda
        useShowHandler(() -> {System.out.println("lambda写法"); });


    }


    public static void useShowHandler(ShowHandler handler) {

        handler.show();
    }
}


interface ShowHandler {

    void show();
}
